using System;
using System.Collections.Generic;
using MNH.Yarekoodak.DomainClasses;
using MNH.WebApps.Common.Data;
using MNH.WebApps.Common.Helpers.JqGrid;
using System.Collections.Specialized;

namespace MNH.Yarekoodak.Services.Pages
{
    /// <summary>
    /// Page service interface
    /// </summary>
    public partial interface IPageService
    {
        /// <summary>
        /// Deletes a page 
        /// </summary>
        /// <param name="page">Page </param>
        void DeletePage(Page page);

        /// <summary>
        /// Gets a page 
        /// </summary>
        /// <param name="pageId">Page  identifier</param>
        /// <returns>Page </returns>
        Page GetPageById(int pageId, bool asNoTrack = false);

        bool UpdatePagesOrder(IEnumerable<int> Ids);

        IEnumerable<Page> GetAllPages();

        IPagedList<Page> GetAllPages(GridSettings gridSetting, NameValueCollection form);

        /// <summary>
        /// Inserts a page 
        /// </summary>
        /// <param name="page">Page </param>
        void InsertPage(Page page);

        /// <summary>
        /// Updates the page 
        /// </summary>
        /// <param name="page">Page </param>
        void UpdatePage(Page page);

    }
}
